const sqlite3 = require('sqlite3').verbose();
const path = require('path');
let db;
let serverAddress = ''; // 用于存储服务器地址的变量

function createConnection() {
    // 创建或打开数据库文件
    db = new sqlite3.Database(path.join('.', 'servers.db'), (err) => {
        if (err) {
            console.error('无法打开数据库', err.message);
        } else {
            console.log('成功连接到SQLite数据库');
            // 创建表（如果不存在）
            db.run("CREATE TABLE IF NOT EXISTS server_addresses (id INTEGER PRIMARY KEY AUTOINCREMENT, address TEXT)", (err) => {
                if (err) {
                    console.error('无法创建表:', err.message);
                }
            });


            // 初始化时从数据库获取服务器地址
            initializeServerAddress();
        }
    });
}

// 初始化服务器地址
function initializeServerAddress() {
    db.get("SELECT address FROM server_addresses WHERE id = (SELECT MAX(id) FROM server_addresses)", [], (err, row) => {
        if (err) {
            console.error('无法获取服务器地址:', err.message);
        } else {
            serverAddress = row ? row.address : '';
            console.log(`初始化服务器地址为: ${serverAddress}`);
        }
    });
}

function setServerAddress(address) {
    // 将服务器地址保存到数据库
    db.run("INSERT INTO server_addresses (address) VALUES (?)", [address], (err) => {
        if (err) {
            console.error('无法保存服务器地址:', err.message);
        } else {
            serverAddress = address;
            console.log(`保存服务器地址成功: ${serverAddress}`);
        }
    });
}

function getServerAddress() {
    return serverAddress;
}

module.exports = { db, createConnection, setServerAddress, getServerAddress };